In the prior art, the workflow of printing a page by using a conventional raster print device comprises three steps: receiving data to be printed from a host; rasterizing the data to a raster bitmap; and transmitting the raster bitmap to a print engine to output.
The raster bitmap must be transmitted to a print engine at a constant speed in some raster print devices like a laser printer because the raster bitmap must be transferred from the print engine at a constant speed to a laser drum. Once the raster bitmap can not be transmitted to the print engine in time, a so-called “print overrun” occurs to block the page from being outputted correctly onto a piece of paper.
Generally, printing control methods used for the raster print devices in which the raster bitmap are transmitted to the print engine at a constant speed are as follows.
(1) A page is pre-rasterized into the raster bitmap and the raster bitmap are stored in a memory for printing. In this method, the print overrun does not surely occur because the raster bitmap are stored in the memory. However, the shortcoming of this method is that raster print devices with high resolution generally need a large memory. So do Color printers. For example, to store a CMYK color page of A4 with 600 DPI, a memory about 16 MB is needed. This may increase the cost greatly. Furthermore, according to this method, the printing can be started only after the rasterization of a whole page is finished, resulting in reduction of printing speed.
(2) Another known method is dividing a page into multiple bands. According to the method, data of a page are interpreted as an intermediate format arranged in bands, which are easily transformed to the final raster bitmap and occupy much less memory than the raster bitmap of the same page do. The printing can be started after one band is rasterized. As the rasterized band is printed, the raster bitmap of the next band are generated. This method can increase the printing speed and reduce the memory requirement for storing the raster bitmap of a whole page. However, it is a shortcoming of this method that, if the data of a certain band is too complicated to be fully rasterized before the printing of the preceding band is completed, “print overrun” will occur and the page cannot be correctly outputted.
In order to prevent the print overrun, a known solution is pre-counting the rasterizing time required by each of bands. If one or more bands need more time for rasterization separately than the printing time of the preceding band, the bands will be pre-rasterized before printing the page. This solution eliminates the print overrun, but its disadvantage is that the memory is occupied by the raster bitmap of those pre-rasterized bands, resulting in increasing the memory requirement and the cost of the controller.
To address the issue, a lot of improvements are proposed. For example, U.S. Pat. No. 5,129,049 owned by H.P. Company provides a method, in which, if the content of a certain band is very simple or the band have been pre-rasterized, printing the band needs less time than the time for rasterizing one band and an idle time occurs. The idle time could be used for rasterizing the next band. In this way, if the next band needs more time for rasterization, the next band will not need pre-rasterization. Therefore, number of pre-rasterized bands can be reduced to a certain extent. However, this known method uses the idle time of the immediate preceding band only, without utilizing the idle time of all simple bands and idle time of all pre-rasterized bands. Thus, the method fails to minimize number of the bands needing to be pre-rasterized and the printing memory requirement cannot be reduced significantly.